Open
Conversation
This adds on a debugger to the evaluation loop, that allows for pausing, saving state, then resuming from saved state.
…ebug support
- Add MSDebugServer implementing the Debug Adapter Protocol over TCP,
with launch/attach modes, breakpoints, step-over/step-in/step-out,
variable inspection, exception breakpoints, and watch expressions
- Add multi-thread DAP support: register/unregister threads, per-thread
pause states, sync and async stepping modes (sync blocks in place,
async snapshots state and resumes on a new thread)
- Refactor DebugContext into a full thread-aware debug state manager with
per-thread StepMode, ThreadDebugState, and a thread registry for DAP
- Add DaemonManager lifecycle listeners and thread-aware waitForThreads,
so the debug session stays alive while background threads run
- Extract spawnExecutionThread() to centralize execution thread lifecycle
(run, await daemons, signal completion) in one place
- Fix StackTraceManager thread affinity: remove isDebugAdopted flag so
background threads (x_new_thread) get their own STM instead of sharing
the main thread's, which was corrupting call depth for step-over
- Fix skippingResume flag: clear unconditionally on source line change
rather than requiring shouldStop=true, which blocked step-over returns
- Add StackTraceFrame.getTarget() for debugger source mapping
- Add Breakpoint condition/hitCount/logMessage support
- Wire up cmdline interpreter (--debug flag) and lang server for DAP
- Add DAPTestHarness and dual sync/async integration tests for step-over
and multi-thread step-over scenarios
- Add debugger dependency (lsp4j.debug) to pom.xml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR implements a DAP server, to support debugging via the VS Code plugin.